package com.shensi.api.admin.domian.station.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.shensi.common.core.annotation.Excel;
import com.shensi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 班结对象 class_settlement
 *
 * @author qujia
 * @date 2021-11-27
 */
public class ClassSettlementVo extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * $column.columnComment
     */
    private Long classSettlementId;

    /**
     * 班结编码，和油站id搭配排重
     */
    @Excel(name = "班结ID")
    private String classNo;

    private Long enterpriseId;

    /**
     * 油站id
     */
    private Long stationId;

    /**
     * 油站名称
     */
    @Excel(name = "油站名称")
    private String stationName;

    /**
     * 支付方式
     */
    private String payType;

    /**
     * 加油员id
     */
    private String oilPersonnelId;

    /**
     * 加油员name
     */
    private String oilPersonnelName;

    /**
     * 油品id
     */
    private String oilId;

    /**
     * 油品名称
     */
    private String oilName;

    /**
     * $column.columnComment
     */
    private BigDecimal oilPrice;

    /**
     * 油枪号
     */
    private String oilGun;

    /**
     * 油品类型
     */
    private String oilType;

    /**
     * 数量(L/kg)
     */
    @Excel(name = "数量(L/kg)")
    private BigDecimal orderLiters;

    /**
     * 设备编码
     */
    @Excel(name = "班结设备")
    private String equipmentCode;

    /**
     * 参加立减活动的id
     */
    private Long activityId;

    /**
     * 参加活动的名称
     */
    private String activityName;

    public BigDecimal getYhkCommission() {
        return yhkCommission;
    }

    public void setYhkCommission(BigDecimal yhkCommission) {
        this.yhkCommission = yhkCommission;
    }

    public BigDecimal getOtherCommission() {
        return otherCommission;
    }

    public void setOtherCommission(BigDecimal otherCommission) {
        this.otherCommission = otherCommission;
    }

    @ApiModelProperty(value = "银行卡渠道费")
    private BigDecimal yhkCommission;

    public BigDecimal getAllCommission() {
        return allCommission;
    }

    public void setAllCommission(BigDecimal allCommission) {
        this.allCommission = allCommission;
    }

    public int getIsShowCommission() {
        return isShowCommission;
    }

    public void setIsShowCommission(int isShowCommission) {
        this.isShowCommission = isShowCommission;
    }

    @ApiModelProperty(value = "全渠道费")
    private BigDecimal allCommission;


    @ApiModelProperty(value = "是否展示渠道费")
    private int isShowCommission;

    @ApiModelProperty(value = "非银行卡渠道费")
    private BigDecimal otherCommission;

    public String getTimeOnTrade() {
        return timeOnTrade;
    }

    public void setTimeOnTrade(String timeOnTrade) {
        this.timeOnTrade = timeOnTrade;
    }

    private String timeOnTrade;

    @Override
    public List<String> getStationIdList() {
        return stationIdList;
    }

    @Override
    public void setStationIdList(List<String> stationIdList) {
        this.stationIdList = stationIdList;
    }

    private List<String> stationIdList;

    /**
     * 此次班结订单数量
     */
    @ApiModelProperty(value = "此次班结订单数量")
    @Excel(name = "此次班结订单数量")
    private Long orderCount;

    /**
     * 实收金额(元)
     */
    @ApiModelProperty(value = "实收金额(元)")
    @Excel(name = "消费合计实收(元)")
    private BigDecimal amt;

    public BigDecimal getNodzkAmt() {
        return nodzkAmt;
    }

    public void setNodzkAmt(BigDecimal nodzkAmt) {
        this.nodzkAmt = nodzkAmt;
    }

    /**
     * 无电子卡的实收金额(元)
     */
    @ApiModelProperty(value = "无电子卡的实收金额(元)")
    private BigDecimal nodzkAmt;

    /**
     * 充值实收合计金额(元)
     */
    @ApiModelProperty(value = "充值实收合计金额(元)")
    @Excel(name = "充值合计实收(元)")
    private BigDecimal actualRechargeReceivedAmt;

    /**
     * 实际充值赠送金额(元)
     */
    @ApiModelProperty(value = "实际充值赠送金额(元)")
    @Excel(name = "充值合计赠送(元)")
    private BigDecimal actualRechargeGiftAmt;

    /**
     * 应收总金额（元）
     */
    @ApiModelProperty(value = "应收总金额（元）")
    @Excel(name = "消费合计应收（元）")
    private BigDecimal receivableAmt;

    /**
     * 退款金额（元）
     */
    @ApiModelProperty(value = "退款金额（元）")
    @Excel(name = "退款金额（元）")
    private BigDecimal refundAmt;

    /**
     * 短款金额
     */
    @ApiModelProperty(value = "短款金额")
    private BigDecimal moreAmt;

    @ApiModelProperty(value = "立减优惠金额")
    private BigDecimal discountAmt;


    @ApiModelProperty(value = "优惠券优惠金额")
    private BigDecimal discountCouponAmt;


    @ApiModelProperty(value = "优惠总金额（元）")
    @Excel(name = "消费合计优惠（元）")
    private BigDecimal discountSum;

    @ApiModelProperty(value = "提现总金额（元）")
    @Excel(name = "到账总金额（元）")
    private BigDecimal totalWithdrawalAmount;

    @ApiModelProperty(value = "手续费（元）")
//    @Excel(name = "手续费（元）")
    private BigDecimal commission;

    @ApiModelProperty(value = "现金总金额（元）")
    private BigDecimal totalCashAmount;

    @ApiModelProperty(value = "到账总金额（元）")
    private BigDecimal allAmt;

    @ApiModelProperty(value = "消费合计退款（元）")
    @Excel(name = "消费合计退款（元）")
    private BigDecimal consumptionRefundAmt;

    @ApiModelProperty(value = "优惠金额（元）")
    private BigDecimal totalDiscountAmt;

    public String getClassesDayOrNight() {
        return classesDayOrNight;
    }

    public void setClassesDayOrNight(String classesDayOrNight) {
        this.classesDayOrNight = classesDayOrNight;
    }

    @ApiModelProperty(value = "班次day 白天 night 晚上")
    @Excel(name = "班次")
    private String classesDayOrNight;

    @ApiModelProperty(value = "充值合计提现（元）")
    private BigDecimal totalRechargeWithdrawalAmount;

    @ApiModelProperty(value = "充值合计退款（元）")
    @Excel(name = "充值合计退款（元）")
    private BigDecimal totalRechargeRefundAmt;


    public BigDecimal getRechargeReduceDiscounts() {
        return rechargeReduceDiscounts;
    }

    public void setRechargeReduceDiscounts(BigDecimal rechargeReduceDiscounts) {
        this.rechargeReduceDiscounts = rechargeReduceDiscounts;
    }

    @ApiModelProperty(value = "充值立减优惠金额（元）")
    private BigDecimal rechargeReduceDiscounts;

    @ApiModelProperty(value = "优惠券核销金额（元）")
    private BigDecimal killCouponAmt;

    public BigDecimal getPresentAmount() {
        return presentAmount;
    }

    public void setPresentAmount(BigDecimal presentAmount) {
        this.presentAmount = presentAmount;
    }

    @ApiModelProperty(value = "消费赠送金额（元）")
    private BigDecimal presentAmount;

    public BigDecimal getAggregatedPayment() {
        return aggregatedPayment;
    }

    public void setAggregatedPayment(BigDecimal aggregatedPayment) {
        this.aggregatedPayment = aggregatedPayment;
    }

    @ApiModelProperty(value = "聚合支付金额（元）")
    private BigDecimal aggregatedPayment;

    public BigDecimal getSuperPayAmt() {
        return superPayAmt;
    }

    public void setSuperPayAmt(BigDecimal superPayAmt) {
        this.superPayAmt = superPayAmt;
    }

    @ApiModelProperty(value = "超级会员金额提现用（元）")
    private BigDecimal superPayAmt;


    //0司机1油企
    @ApiModelProperty(value = "手续费支付者")
    private String channelFeePayer;

    public String getChannelFeePayer() {
        return channelFeePayer;
    }

    public void setChannelFeePayer(String channelFeePayer) {
        this.channelFeePayer = channelFeePayer;
    }


    public ClassSettlementVo() {
    }

    public BigDecimal getKillCouponAmt() {
        return killCouponAmt;
    }

    public void setKillCouponAmt(BigDecimal killCouponAmt) {
        this.killCouponAmt = killCouponAmt;
    }


    public void setScore(String score) {
        this.score = score;
    }

    public String getScore() {
        return score;
    }

    public BigDecimal getActualRechargeReceivedAmt() {
        return actualRechargeReceivedAmt;
    }

    public void setActualRechargeReceivedAmt(BigDecimal actualRechargeReceivedAmt) {
        this.actualRechargeReceivedAmt = actualRechargeReceivedAmt;
    }


    /**
     * 消耗积分
     */
    private String score;

    /**
     * 班结开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "班结开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date classStartTime;

    /**
     * 班结截止时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "班结结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date classEndTime;
    private String beginTime;


    private String endTime;


    public void setBeginTime(String beginTime) {
        this.beginTime = beginTime;
    }

    public String getBeginTime() {
        return beginTime;
    }

    @Override
    public String getEndTime() {
        return endTime;
    }

    @Override
    public void setEndTime(String endTime) {
        this.endTime = endTime;
    }


    /**
     * 创建人
     */
    private Long createUser;

    /**
     * 创建人名
     */
    @Excel(name = "创建人名")
    private String createName;

    private String note;

    private BigDecimal sumPrice;

    private BigDecimal serviceCharge;

    @Excel(name = "小票状态")
    private Integer isPrint;


    public Integer getIsPrint() {
        return isPrint;
    }

    public void setIsPrint(Integer isPrint) {
        this.isPrint = isPrint;
    }

    public void setClassSettlementId(Long classSettlementId) {
        this.classSettlementId = classSettlementId;
    }


    public void setTotalWithdrawalAmount(BigDecimal totalWithdrawalAmount) {
        this.totalWithdrawalAmount = totalWithdrawalAmount;
    }


    public void setCommission(BigDecimal commission) {
        this.commission = commission;
    }

    public void setTotalCashAmount(BigDecimal totalCashAmount) {
        this.totalCashAmount = totalCashAmount;
    }


    public BigDecimal getTotalWithdrawalAmount() {
        return totalWithdrawalAmount;
    }

    public BigDecimal getCommission() {
        return commission;
    }

    public BigDecimal getTotalCashAmount() {
        return totalCashAmount;
    }


    public void setDiscountSum(BigDecimal discountSum) {
        this.discountSum = discountSum;
    }

    public BigDecimal getDiscountSum() {
        return discountSum;
    }

    public Long getClassSettlementId() {
        return classSettlementId;
    }

    public void setClassNo(String classNo) {
        this.classNo = classNo;
    }

    public String getClassNo() {
        return classNo;
    }

    public void setEnterpriseId(Long enterpriseId) {
        this.enterpriseId = enterpriseId;
    }

    public Long getEnterpriseId() {
        return enterpriseId;
    }

    public void setStationId(Long stationId) {
        this.stationId = stationId;
    }

    public Long getStationId() {
        return stationId;
    }

    public void setStationName(String stationName) {
        this.stationName = stationName;
    }

    public String getStationName() {
        return stationName;
    }

    public void setPayType(String payType) {
        this.payType = payType;
    }

    public String getPayType() {
        return payType;
    }

    public void setOilPersonnelId(String oilPersonnelId) {
        this.oilPersonnelId = oilPersonnelId;
    }

    public String getOilPersonnelId() {
        return oilPersonnelId;
    }

    public void setOilPersonnelName(String oilPersonnelName) {
        this.oilPersonnelName = oilPersonnelName;
    }

    public String getOilPersonnelName() {
        return oilPersonnelName;
    }

    public void setOilId(String oilId) {
        this.oilId = oilId;
    }

    public String getOilId() {
        return oilId;
    }

    public void setOilName(String oilName) {
        this.oilName = oilName;
    }

    public String getOilName() {
        return oilName;
    }

    public BigDecimal getOilPrice() {
        return oilPrice;
    }

    public void setOilPrice(BigDecimal oilPrice) {
        this.oilPrice = oilPrice;
    }

    public void setOilGun(String oilGun) {
        this.oilGun = oilGun;
    }

    public String getOilGun() {
        return oilGun;
    }

    public void setOilType(String oilType) {
        this.oilType = oilType;
    }

    public String getOilType() {
        return oilType;
    }

    public void setOrderLiters(BigDecimal orderLiters) {
        this.orderLiters = orderLiters;
    }

    public BigDecimal getOrderLiters() {
        return orderLiters;
    }

    public void setEquipmentCode(String equipmentCode) {
        this.equipmentCode = equipmentCode;
    }

    public String getEquipmentCode() {
        return equipmentCode;
    }

    public void setActivityId(Long activityId) {
        this.activityId = activityId;
    }

    public Long getActivityId() {
        return activityId;
    }

    public void setActivityName(String activityName) {
        this.activityName = activityName;
    }

    public String getActivityName() {
        return activityName;
    }

    public void setOrderCount(Long orderCount) {
        this.orderCount = orderCount;
    }

    public Long getOrderCount() {
        return orderCount;
    }

    public void setAmt(BigDecimal amt) {
        this.amt = amt;
    }

    public BigDecimal getAmt() {
        return amt;
    }

    public void setReceivableAmt(BigDecimal receivableAmt) {
        this.receivableAmt = receivableAmt;
    }

    public BigDecimal getReceivableAmt() {
        return receivableAmt;
    }

    public void setRefundAmt(BigDecimal refundAmt) {
        this.refundAmt = refundAmt;
    }

    public BigDecimal getRefundAmt() {
        return refundAmt;
    }

    public void setMoreAmt(BigDecimal moreAmt) {
        this.moreAmt = moreAmt;
    }

    public BigDecimal getMoreAmt() {
        return moreAmt;
    }

    public void setDiscountAmt(BigDecimal discountAmt) {
        this.discountAmt = discountAmt;
    }

    public BigDecimal getDiscountAmt() {
        return discountAmt;
    }

    public void setDiscountCouponAmt(BigDecimal discountCouponAmt) {
        this.discountCouponAmt = discountCouponAmt;
    }

    public BigDecimal getDiscountCouponAmt() {
        return discountCouponAmt;
    }

    public void setClassStartTime(Date classStartTime) {
        this.classStartTime = classStartTime;
    }

    public Date getClassStartTime() {
        return classStartTime;
    }

    public void setClassEndTime(Date classEndTime) {
        this.classEndTime = classEndTime;
    }

    public Date getClassEndTime() {
        return classEndTime;
    }

    public void setCreateUser(Long createUser) {
        this.createUser = createUser;
    }

    public Long getCreateUser() {
        return createUser;
    }

    public void setCreateName(String createName) {
        this.createName = createName;
    }

    public String getCreateName() {
        return createName;
    }

    public void setNote(String note) {
        this.note = note;
    }

    public String getNote() {
        return note;
    }

    public BigDecimal getSumPrice() {
        return sumPrice;
    }

    public void setSumPrice(BigDecimal sumPrice) {
        this.sumPrice = sumPrice;
    }

    public BigDecimal getServiceCharge() {
        return serviceCharge;
    }

    public void setServiceCharge(BigDecimal serviceCharge) {
        this.serviceCharge = serviceCharge;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("classSettlementId", getClassSettlementId())
                .append("classNo", getClassNo())
                .append("stationId", getStationId())
                .append("stationName", getStationName())
                .append("payType", getPayType())
                .append("oilPersonnelId", getOilPersonnelId())
                .append("oilId", getOilId())
                .append("oilName", getOilName())
                .append("oilPrice", getOilPrice())
                .append("oilGun", getOilGun())
                .append("oilType", getOilType())
                .append("orderLiters", getOrderLiters())
                .append("equipmentCode", getEquipmentCode())
                .append("activityId", getActivityId())
                .append("activityName", getActivityName())
                .append("orderCount", getOrderCount())
                .append("amt", getAmt())
                .append("receivableAmt", getReceivableAmt())
                .append("refundAmt", getRefundAmt())
                .append("moreAmt", getMoreAmt())
                .append("discountAmt", getDiscountAmt())
                .append("discountCouponAmt", getDiscountCouponAmt())
                .append("classStartTime", getClassStartTime())
                .append("classEndTime", getClassEndTime())
                .append("createTime", getCreateTime())
                .append("createUser", getCreateUser())
                .append("createName", getCreateName())
                .toString();
    }

    public BigDecimal getActualRechargeGiftAmt() {
        return actualRechargeGiftAmt;
    }

    public void setActualRechargeGiftAmt(BigDecimal actualRechargeGiftAmt) {
        this.actualRechargeGiftAmt = actualRechargeGiftAmt;
    }

    public BigDecimal getAllAmt() {
        return allAmt;
    }

    public void setAllAmt(BigDecimal allAmt) {
        this.allAmt = allAmt;
    }

    public BigDecimal getConsumptionRefundAmt() {
        return consumptionRefundAmt;
    }

    public void setConsumptionRefundAmt(BigDecimal consumptionRefundAmt) {
        this.consumptionRefundAmt = consumptionRefundAmt;
    }

    public BigDecimal getTotalDiscountAmt() {
        return totalDiscountAmt;
    }

    public void setTotalDiscountAmt(BigDecimal totalDiscountAmt) {
        this.totalDiscountAmt = totalDiscountAmt;
    }

    public BigDecimal getTotalRechargeWithdrawalAmount() {
        return totalRechargeWithdrawalAmount;
    }

    public void setTotalRechargeWithdrawalAmount(BigDecimal totalRechargeWithdrawalAmount) {
        this.totalRechargeWithdrawalAmount = totalRechargeWithdrawalAmount;
    }

    public BigDecimal getTotalRechargeRefundAmt() {
        return totalRechargeRefundAmt;
    }

    public void setTotalRechargeRefundAmt(BigDecimal totalRechargeRefundAmt) {
        this.totalRechargeRefundAmt = totalRechargeRefundAmt;
    }
}
